Automated golf scoring

ABSTRACT

An automated golf scoring system with a sensor unit wearable by the player and a data processing unit in communication therewith is disclosed. First acceleration data corresponding to a first swing motion measured with an accelerometer of the sensor unit is received. A resting state is detected with first speed data from a location positioner. The first acceleration data for the first swing motion is stored in a swing queue when the resting state is detected. A movement of the player is then detected with second speed data. A shot counter is incremented upon detecting the movement of the player. This depends on an evaluation of the first acceleration data in the swing queue having a higher magnitude than any existing acceleration data in the swing queue.

CROSS-REFERENCE TO RELATED APPLICATIONS

Not Applicable

STATEMENT RE: FEDERALLY SPONSORED RESEARCH/DEVELOPMENT

Not Applicable

BACKGROUND

1. Technical Field

The present disclosure relates generally to tracking athletic performance, and more particularly, to systems and methods for automated golf scoring with wearable devices connectable to scorekeeping data processing devices having minimally intrusive interfaces.

2. Related Art

Golf is played recreationally and professionally worldwide by numerous individuals of both genders, across a wide range of age and skill level. The fundamental objective is to strike a ball with a club starting from the teeing ground into a hole some distance away. A golf course is comprised of multiple holes (eighteen or nine, depending on the size of the course) that are played in sequence, and scored based upon the number of strokes taken from the tee-off to the final putt in which the ball is hit into the hole. In this context, the game appears simple, but there are numerous complexities that continue to challenge players of the highest skill level.

Except for a few basic characteristics, there is a high degree of variability in the configuration of golf courses. Each “hole” or playing area of the course is generally defined by a bounded grassy area including the aforementioned teeing ground and the hole, which is positioned within a green. Between the green and the teeing ground is an area referred to as the fairway, which has short, evenly cut grass that is the most advantageous surface from which to take a subsequent shot. The fairway may extend a specified distance at a specified angle relative to the teeing ground and the green. On the outliers of the fairway but still within the course boundaries is the rough, which has longer cut grass. The distance between the tee and the hole is such that multiple strokes are necessary, and so skillfully placing each shot to different parts of the fairway are rewarded. In addition to the aforementioned grassy areas of the course, there may be various water hazards, bunkers or sand traps, and trees/vegetation that block the flight of the ball.

Besides the variable course configurations that challenge players, wind conditions, sun position, and other environmental factors may present an additional level of difficulty. Furthermore, maintaining a consistent swing is challenging even for the most practiced players, and significant deviations in power and angle may need to be made from shot to shot to account for course layout, distance, wind conditions, and the utilized club. Thus, there is a substantial element of play strategy, which further keeps the game interesting for players of all skill levels. However, with different handicaps, tee boxes, and team scoring/match play, individuals of varying skill can play and compete against each other in groups to such an extent that it can still be an enjoyable recreational activity for all.

Regardless of the specific game play variation, scoring in golf fundamentally involves counting the number of strokes a player takes from tee-off to hole-in. As a general matter, the player with the fewest number of strokes over the entire course is the winner. The task of keeping score is typically handled by the players themselves. In the simplest form, the number of strokes can be kept manually and written on paper as the player progress through the holes. Depending on the rules to which the players have agreed to adhere, adjustments to the number of strokes for the hole for penalties and the like, or limiting the number of strokes counted can likewise be made manually.

As an improvement over paper scorekeeping, various electronic devices have been developed to perform essentially the same function. The devices may include a display screen and one or more buttons to increment/decrement the strokes as they are played. Manual entry, whether electronic or paper, tends to disrupt the flow of gameplay. Specifically, after the stroke is completed, it is necessary for the player to retrieve the device from either the pocket or the golf bag which may be stowed away from the tee box in a golf bag and/or in a golf cart, activate the device, and input a stroke. This must be repeated for each stroke, though with some devices, the score for the hole may be entered upon finishing play for that hole. Regardless, the process of entering such data is tedious. It will be recognized that besides the game itself, many enjoy golf as an opportunity to socialize and/or conduct business on an informal level, and scorekeeping may be too distracting to those ends.

In order to overcome these deficiencies, automated golf scoring systems have also been developed. One existing variation of an automated scoring system is implemented on a smartphone device with an accelerometer sensor. Input profiles that correspond to typical swing motion may be pre-stored on the device, and the stroke counter may be incremented whenever actual data from the accelerometer matches that of the swing input profiles. Such systems do not account for practice swings typically taken before a shot, leading to wildly inaccurate scores unless reviewed after each hole. The necessity for this review largely eliminates the advantages of an automated scoring system, as the device must be retrieved and manipulated in order to make the corrections. Others have additionally incorporated a Global Positioning System (GPS) receiver that reports the coordinates of the location in which the device is placed. If a swing is detected within the same relative vicinity of GPS coordinates, then only the last one detected may be counted toward the score. This technique relied upon certain assumptions as to position and swing input that may not necessarily be true. One such situation could be bad first shot that requires restarting play from the tee but are nevertheless counted only as a first shot. Without additional user intervention, the score kept on the device is incorrect.

Accordingly, there is a need in the art for improved automated golf scoring. There is also a need for a more refined method for detecting golf swings based on sensor readings from a wearable device.

BRIEF SUMMARY

The present disclosure is directed to an automated golf scoring system using a combination of readings from various sensors to accurately count strokes. Generally, accelerometer data from a wearable device and location data from a mobile communication device, such as a smart phone, is utilized to assess which of possibly several accelerometer events should be deemed a shot. The need for manual intervention for scoring is minimized, while providing useful information regarding game progress to the player.

In accordance with one embodiment, there is a method for automated scoring in connection with a sensor unit wearable by the player and a data processing unit in communication therewith. The method may begin with receiving a measurement of a first swing motion by the player with an accelerometer of the sensor unit. The accelerometer may generate first acceleration data corresponding to the first swing motion. Additionally, the method may include detecting a resting state of the player with first speed data from a location positioner of the data processing unit. The first speed data may be less than a predetermined stationary speed threshold to detect the resting state of the player. There may also be a step of storing the first acceleration data for the first swing motion into a swing queue retained on the data processing unit when the resting state is detected. The method may further include a step of detecting a movement of the player with second speed data from the location positioner of the data processing unit. The second speed data may be greater the predetermined stationary speed threshold to detect the movement of the player. The method may also include incrementing a shot counter that is retained on the data processing unit upon detecting the movement of the player. This step may also depend on an evaluation of the first acceleration data in the swing queue having a higher magnitude than any existing acceleration data in the swing queue.

Certain other embodiments of the present disclosure contemplate respective computer-readable program storage media that each tangibly embodies one or more programs of instructions executable by a data processing device to perform the foregoing method.

In yet another automated golf scoring system, there may be a sensor unit and a data processing unit. The sensor unit may include an accelerometer that measures a swing motion by a player and generates acceleration data corresponding thereto. The data processing unit may be in communication with the sensor unit and is receptive to the acceleration data. Furthermore, the data processing unit may have various modules, including a geographic locator module, a swing detection module, and a stroke counter module. The geographic locator module may output speed data corresponding to the player's movement. The swing detection module may cooperate with the geographic locator module and the sensor unit to store acceleration data into a swing queue when a resting state of the player is detected. The detection of the resting state may be based upon the speed data being less than a predetermined stationary speed threshold. The stroke counter module cooperates with the swing detection module and the geographic locator module. A shot counter that is retained on the data processing unit may be incremented by the stroke counter module when a movement of the player is detected while a most recently recorded acceleration data has a highest magnitude among other acceleration data in the swing queue.

The present disclosure will be best understood by reference to the following detailed description when read in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

These and other features and advantages of the various embodiments disclosed herein will be better understood with respect to the following description and drawings, in which:

FIG. 1 is a block diagram illustrating the components of an automated golf scoring system including a wearable sensor unit and a data processing unit;

FIG. 2 is a detailed block diagram of the automated golf scoring system and its constituent functional modules;

FIG. 3 is a flowchart illustrating one method for automated golf scoring in accordance with an embodiment of the present disclosure;

FIG. 4 is a plot of acceleration magnitude data as measured by an accelerometer of the wearable sensor unit;

FIG. 5 is a detailed flowchart illustrating one implementation of detecting player swings;

FIG. 6 is a detailed flowchart illustrating one implementation of counting a player stroke;

FIG. 7 is an example user interface on the data processing unit showing game play progress and counted strokes; and

FIG. 8 is an example user interface on the wearable sensor unit showing game play progress and counted strokes.

Common reference numerals are used throughout the drawings and the detailed description to indicate the same elements.

DETAILED DESCRIPTION

The detailed description set forth below in connection with the appended drawings is intended as a description of the presently preferred embodiments of automated golf scoring, and is not intended to represent the only form in which the presented embodiments may be developed or utilized. It is further understood that the use of relational terms such as first and second and the like are used solely to distinguish one from another entity without necessarily requiring or implying any actual such relationship or order between such entities.

Referring now to the block diagram of FIG. 1, an automated scoring system 10 for golf includes a wearable sensor unit 12 and a data processing unit 14. In general, the automated scoring system 10 is passive, in that no user intervention is necessary to keep score during play, thus reducing distractions and heightening enjoyment. The wearable sensor unit 12 is understood to be attachable to one of the limbs of the player, though in one preferred but optional embodiment, attachment to the wrist is contemplated. Other attachment points for the wearable sensor unit 12 are possible, but it will be recognized that because the most significant motion occurring during a golf stroke is in the arms regardless of the type of stroke being employed, sensors taking measurements thereof are likely to provide the most useful information. This is not intended to preclude other devices that attach to the pants or a belt and which may therefore be more proximal to the hips of the player, for example.

In accordance with one implementation, the wearable sensor unit 12 is a watch-type device that has an enclosure for its various functional components and a strap that is configured to wrap around the player's wrist. Furthermore, the wearable sensor unit 12 includes an accelerometer 16 that measures motion and generates a stream of acceleration/speed data. The watch form factor is envisioned as being better suited for golf. Once worn, little adjustment is necessary, and to the extent any manipulation of the inputs is required for making scoring adjustments, it is readily accessible.

Although it is possible to implement the functionality otherwise dedicated to the data processing unit 14 in the wearable sensor unit 12, for simplification purposes, they may be kept separate. To this end, the data stream from the accelerometer 16 is communicated to the data processing unit 14 over corresponding transceivers 18, 20. A wireless transmission modality is contemplated so that physical interference from cables is avoided during swings. The standard that presently has the most widely available and lowest cost components is understood to be Bluetooth, though any other suitable wireless communications may be substituted without departing from the scope of the present disclosure. In order to conserve electrical power, a low energy variant (Bluetooth LE) may also be utilized.

The functioning of the accelerometer 16 and the transceiver 18 may be managed by a processor 22, which is understood to be a conventional data processing device that executes pre-programmed instructions based on certain inputs to generate outputs in response. Such instructions, along with other data, may be stored in a memory 24. Various embodiments of the present disclosure contemplate additional input and output functionalities that go beyond simple reporting of acceleration/speed data, so the wearable sensor unit 12 may further include one or more input devices 26 and one or more output devices 28. In the context of a watch-type unit, the input devices 26 may be buttons accessible from the side of the bezel, and the output device 28 may be a display screen (liquid crystal or otherwise) that constitutes the front face of the bezel. Other input and output devices are possible, and the foregoing enumeration of components is intended to be exemplary and not limiting.

There are several existing health and activity monitoring wearable devices that have the aforementioned features, and could be incorporated into the presently contemplated automated scoring system 10. These include open platforms such as Metawatch or Pebble, or could be custom developed specifically for golf scoring.

The data processing unit 14 may be a widely owned mobile communications device such as a smartphone. A foundational aspect of such mobile communications devices is to place and receive telephone calls over a cellular network, but conventional smartphones are capable of running a variety of software applications including those that embody the contemplated methods of automated golf scoring and perform the various steps thereof. In this regard, the data processing unit 14 has a processor 30, much like the processor 22 of the wearable sensor unit 12 that executes pre-programmed instructions. Similarly, there is a memory 32 for storing these instructions and other data. On a very general level, the particular operands and execution sequence of the instructions may be governed by various input parameters provided from input devices 34, while the results of executing the instructions may be shown on an output device 36. In some variations of the data processing unit, the input device 34 and the output device 36 may be a combined touch screen display 38, though it is possible to have separate input devices such as keypads, buttons, and slide switches.

Every functional aspect of data processing unit 14 may be managed to one degree or another by the processor 30. Thus, also connected to the central processing unit is the aforementioned transceiver 18. In addition to the Bluetooth LE modality, the transceiver 20 may implement other communications modalities such as different generations of GSM (Global System for Mobile Communications), EDGE (Enhanced Data rates for GSM Evolution), UMTS (Universal Mobile Telecommunications System), HSPA (High Speed Packet Access) and others. Still further, local area wireless networking technologies such as IEEE 802.11x (WiFi) may also be implemented by the transceiver 20. Using one or more of these communications modalities, the data processing unit 14 may connect to wide area networks such as the Internet 40 to access various online services 42.

The general purpose nature of the processor 30 permits a variety of third party applications or “apps” to be run, performing various computing tasks that require functionality going beyond the typical default features of the data processing unit 14. Because smartphones are taken everywhere the user goes, much of application development has focused on location-based enhancements. Accordingly, the data processing unit 14 includes a locator 44, which is understood to be a Global Positioning System (GPS) receiver that outputs coordinate values corresponding to the current device position as reported by signals 46 from a network of GPS satellites 48. It will be recognized that from multiple position readings over time, bearing, speed, and acceleration may be ascertained. Various embodiments of the present disclosure contemplate the use of such location data to ascertain player strokes, the details of which will be considered more fully below. In addition to the enumerated components, the data processing unit 14 may also have other components 50 such as a digital camera capable of recording still images, as well as video in conjunction with the audio input device.

One embodiment of the present disclosure contemplates a system comprised of various functional components or modules, while another embodiment contemplates a method. The segregation of these modules is presented by way of example only and not of limitation, and those having ordinary skill in the art will recognize the numerous possible ways in which different functions can be associated with different modules. The following example is but one implementation. Moreover, the method may be implemented as a series of instructions executed by the processor 30 of the data processing unit 14. In so implementing the method, the application may be developed as a set of cooperating modules.

Again, with reference to the block diagram of FIG. 2 that illustrates these modules, the system includes the wearable sensor unit 12 with the accelerometer 16 that measures a swing motion by the player. Acceleration data corresponding to that swing motion is generated, and transmitted to the data processing unit 14. As indicated above, the data processing unit 14 is in communication with the wearable sensor unit 12 and is receptive to the acceleration data. The additional details of the modules will be described in relation to the functions performed, but as an overview, the data processing unit includes a geographic locator module 52, a swing detection module 54, and a stroke counter module 56, among others.

Referring now to the flowchart of FIG. 3, the method for automated golf scoring begins with a step 300 of receiving a measurement of a first swing motion by the player. This measurement is made by the accelerometer 16 of the wearable sensor unit 12, and generates first acceleration data that corresponds to the first swing motion. It is understood that the accelerometer 16 measures motion/acceleration along the x, y, and z axes, and the acceleration data is given for each.

The graph of FIG. 4 is a plot 59 of the combined magnitude values of acceleration data over an example time period t1 to t2, along with a plot 61 of speed data over the same time period. Predictable acceleration and speed/distance trends are expressly contemplated as a basis for determining a played stroke. As shown, a constant stream of data is generated and is being transmitted to the data processing unit 14. There is a noise threshold level 58 that is inherent in all accelerometers, below which the readings are not deemed significant. To improve detection of swings, the acceleration data may be filtered to exclude expected noise before further processing.

There are a few moderate spikes in magnitude that represent some movement by the player beyond the noise threshold level 58, and there are several significant spikes 60, 62, 64, and 66, that may correspond to actual swings. More particularly, a swing is characterized by a material acceleration while at rest, followed by an increase in speed/distance while acceleration normalizes to baseline. In particular, the spikes 60, 62, and 64 may be practice swings, while the last spike 66 may be the actual swing. By historically viewing the plot as shown, it is easy to ascertain the last spike 66 as the actual swing. However, in reviewing the acceleration data in real-time, it is difficult to determine whether the most recent spike was the actual swing, as additional spikes may be forthcoming.

The present disclosure contemplates the use of additional time-correlated data to count golf swings, and this may be achieved by detecting the resting state of the player in accordance with a step 302. Broadly, when the actor is resting and the received acceleration data conforms to a predetermined profile of a swing, it is counted or recorded as such. In one embodiment, the resting state is detected based upon the speed data as reported by the geographic locator module 52 being less than a predetermined stationary speed threshold. As utilized herein, “less than” is also intended to encompass “less than or equal to.” Alternatively, the resting state can be detected based upon the position data as reported by geographic locator module 52, and more particularly, the coordinates as output by the locator 44. Multiple position readings are evaluated, and if, over time, the indicated positions are within a predetermined stationary distance threshold, then the player is deemed to be in a resting state. Like the data from the accelerometer 16, it is understood that there will be some degree of deviation from one position reading or another, even when stationary.

When the resting state and the acceleration data conforms to that of a swing per the foregoing, the method continues with a step 304 of storing the received first acceleration data into a swing queue 68 that is managed by the swing detection module 54. The swing queue 68 may be implemented in a variety of different ways, but in its simplest form, it is understood to be a reserved area of the memory 32 on which values can be stored and indexed for subsequent retrieval.

The part of the automated scoring method involving the detection of swings as generally described above may be more particularly implemented as a programmed logic flow of steps and conditional blocks shown in the flowchart of FIG. 5. This may also be referred to as a swing analysis process that involves the detection of acceleration events of interest while the player is in a resting state. To the extent there are any as evaluated according to the following conditions, the data is understood to be queued for use by the stroke counting module. The acceleration data stored in the swing queue 68 may be deemed invalid and subject to disposal when certain expiration and/or timeout criteria are met. The entry point is the receipt of an accelerometer event per step 500. Next, the x, y, and z axis values are summed into a single magnitude value according to step 502.

This magnitude value serves as the basis for conditional block 504, which involves a comparison to a swing threshold value. In accordance with various embodiments of the present disclosure, the swing threshold value may be variable, and depend on the specific location on the course that is being reported by the geographic locator module 52. The reported location, in turn, may be compared against a map of the course, referred to herein as course data, which defines specific areas of each hole, including locations of the teeing grounds, hazards, fairway, and the green, for example. The swing threshold may be adjusted lower when the reported location is on the green, while adjusted higher when the reported location is on the teeing grounds. Further still, the swing threshold may be adjusted to some intermediate value when the reported location is on the fairway. Although such embodiment contemplates specific thresholds to be set depending on whether the reported location is within certain pre-defined bounded regions of the course, it is also possible to adjust this value based on the relative distance to the hole. The adjustment may be on a sliding distance scale. For example, a player positioned within several feet of the hole may involve a lower threshold than a player positioned on the outer limits of the green. Moreover, a player shooting the first or second stroke on the fairway may be further away (and hence involving a faster swing) than a player shooting the third or fourth stroke also on the fairway. The alternative embodiment in which the threshold is dynamically adjusted according to the distance from the hole is understood to account for this variability. The degree of adjustment necessary to account for differences in the expected acceleration data is readily ascertainable by those having ordinary skill in the art.

Continuing with the decision block 504, if the calculated magnitude value does not exceed the swing threshold value, the logic flow proceeds to a conditional block 506 to determine whether acceleration is currently being monitored. If not, the logic flow returns to the entry point until another acceleration event is detected in accordance with step 500. Otherwise, program execution continues to yet another conditional block 508 to determine whether a timeout period has expired. If not, like the previous conditional block 506, the logic flow returns to the entry point according to step 500. If the timeout period has now expired, monitoring for acceleration is stopped, and the swing queue 68 is reset in step 510. Thereafter, the program returns to wait for the detection of another acceleration event in step 500.

If the aforementioned summed acceleration data or magnitude value is greater than the predetermined swing threshold as determined in conditional block 504, logic flow continues to another conditional block 512 to determine whether the player is in a resting state. Again, this determination may involve the comparison of instantaneous speed data from the locator 44, or of two or more location coordinate values from the locator 44, and so long as such values are within a predetermined speed or distance threshold, the data processing unit 14 and hence the player is assumed to be stationary. Those having ordinary skill in the art will recognize that there are other possible techniques to ascertain movement to a greater degree of accuracy, and such techniques may be readily incorporated into the automated scoring system 10. If the player is not determined to be at rest, then the program returns to wait for the detection of another acceleration event in step 500. If the player is in the resting state, execution continues with step 514 of queuing the player location, i.e., storing the location value in the swing queue 68.

The latest captured acceleration data is compared against other acceleration data stored in the swing queue 68 in conditional block 516. If the last captured acceleration data has the highest magnitude, it is stored in the swing queue 68 according to step 518. It is possible to store only the acceleration data with the highest magnitude at any given time, with the latest captured acceleration data replacing the one previously with the highest magnitude. Alternatively, it is possible to store all received acceleration data that is time-indexed. Swing detection may be repeated to the extent there are other accelerometer events received according to step 500.

If the latest captured acceleration data does not have the highest magnitude, program flow proceeds to conditional block 520, in which it is determined whether acceleration is being monitored or not. If it is not, in step 522 the monitoring is started. Thereafter, a swing counter is incremented per step 524. The program flow then waits for another acceleration event in step 500.

Thus, the swing detection module 54 cooperates with the geographic locator module 52 and the wearable sensor unit 12 to determine a swing by the player. Acceleration data corresponding to the swing is stored in the swing queue 68 when it coincides with the resting state of the player. Again, as indicated above, this resting state is determined based upon the position data from two instances in time within a timeout period that are sufficiently proximal to each other to constitute a stationary state.

With reference again to the flowchart of FIG. 3, the method for automated golf scoring continues with step 306 of detecting a movement of the player. This may be based upon second speed data or, alternatively, second position data, both or either of which may be reported by the geographic locator module 52. In contrast with the detecting of the resting state as discussed above, detecting the movement is based upon either the second speed data being greater than the stationary speed threshold, or two or more readings of the second position data being outside the stationary position threshold, i.e., when the location readings differ from one time instant to another by more than a threshold amount, it is determined that the player is moving. As utilized herein, “greater than” is intended to encompass “greater than or equal to,” as well. When movement is detected, the method continues with step 308 of incrementing a shot counter that is retained on the data processing unit 14, so long as the latest acceleration data stored in the swing queue 68 has the highest magnitude. In the alternative embodiment in which only the highest magnitude acceleration data is stored in the swing queue 68, the existence of a value therein may be the second condition for incrementing the shot counter (in addition to detecting the movement of the player). As indicated above, it is possible for there to be no data in the swing queue 68 when a timeout occurs and the swing queue 68 is reset.

The part of the automated scoring method involving the counting of strokes as generally described above, including steps 306 and 308, may be more particularly implemented as a programmed logic flow of steps and conditional blocks shown in the flowchart of FIG. 6. This may also be referred to as a stroke counting process that analyzes motion when valid data is queued by the swing analysis process. If the proper criteria are met, the queued values are stored in memory and used to increment the player's score.

An entry point 600 is the stroke counter module 56 being in a recording state. There are a series of chained condition blocks that evaluate various data and perform different steps depending on the outcome. A first condition block 602 involves the determination of whether acceleration is currently being monitored. As indicated above, monitoring can be initiated when the latest captured acceleration data is the maximum in the swing queue 68, and stopped when a timeout period has expired. If monitoring is ongoing, execution of the programmed logic continues to a state 603 in which no further action is taken until monitoring is stopped. Otherwise, there is a second condition block 604 to determine whether there is there are any acceleration data and location data that has been recorded. Referring back to the flowchart of FIG. 5, acceleration data and location is stored in the swing queue 68 when the latest captured acceleration data has the highest magnitude, and the player was at rest when it was captured. As shown in the flowchart of FIG. 6, if the swing queue 68 was reset following the expiration of the timeout as evaluated in condition block 508, per state 605, there is no queued data to process, and execution returns to wait until a recording state can be resumed at entry point 600.

The expiration of the timeout is evaluated again in conditional block 606. If expired, as per state 607, it is understood to be outside the evaluation window. To the extent there were any values in the swing queue 68, they are discarded as stale. If it is still within the evaluation window, the next chained conditional block 608 involves an evaluation of whether the player speed is greater than a predetermined speed threshold. This evaluation and subsequent steps are based upon the assumption that following an actual stroke by the player, the player will begin moving away from where the stroke was taken, whether that be away from the teeing grounds and waiting to allow the next player to take a shot, or toward the next play position on the course. The determination of speed in the conditional block 608 may rely upon the location data as reported by the geographic locator module 52 in the same manner as discussed above in relation to a determination of the player's resting state, i.e., calculating a difference in positions over a set time period. If the player is not moving or not moving enough per state 609, execution returns to the entry point 600.

If the conditional block 608 is evaluated to determine that the player is moving, execution continues to step 610 of incrementing the shot counter, and storing the acceleration data into a stroke log. Also stored in the stroke log and associated with the acceleration data is the corresponding location data from when that acceleration was measured. The swing queues 68, along with other internal counters are reset in step 612.

Again, the aforementioned functions are understood to be implemented by the stroke counter module 56. Furthermore, these functions are achieved in cooperation with the swing detection module 54 and the geographic locator module 52. The shot counter is incremented by the stroke counter module 56 when a movement of the player is detected in conjunction with the acceleration data that exceeds the swing threshold and is the maximum amongst others that may have been previously detected.

Still referring to the flowchart of FIG. 6, the score display is updated in step 614. As shown in the block diagram of FIG, 2, the data processing unit 14 may further include an output module 70 for performing this step. One contemplated output may be on the data processing unit 14, and specifically on the touch display screen 38 thereof. An exemplary user interface 71 for the automated golf scoring apparatus is shown in FIG. 7. The data from the shot counter, i.e., the number of strokes counted for the current hole being played, is centrally displayed in a stroke display section 72. In case there is a need for the player to manually adjust the stroke count, the interface includes a stroke increment button 74 and a stroke decrement button 76. Notwithstanding the availability of these manual score adjustment interface elements, it is expressly contemplated that the automated scoring system 10 requires no user intervention, and the data processing unit 14 may be kept in the pocket of the player or other non-intrusive place.

As discussed above, each stroke is associated with a specific location, and the location at any given point during play is available from the geographic locator module 52. Accordingly, it is possible to present a wide variety of useful information about the course and/or the particular hole being played on the user interface 71. In particular, there is a hole indicator 78 that also displays the total yardage from the tee to the hole. The example of FIG. 7 shows that the player is currently playing hole 6, which has a distance of 479 yards. Furthermore, there is a par indicator 80 that also includes a display of the course handicap. A graphical overview 82 of the entire playing area of the hole is also presented, with various stroke indicators 84 being placed thereon corresponding to the locations of recorded strokes. The progression of gameplay may also be visualized in a scoring table 86, which lists each hole and its par in a first row 86 a and the total recorded strokes for each hole in a second row 86 b. The configuration of the user interface 71 is presented by way of example only and not of limitation. Those having ordinary skill in the art will recognized alternative layouts and different information that could be presented to the player without departing from the scope of the present disclosure.

According to another embodiment, the automated scoring system 10 may transmit the stroke count and other information to the wearable sensor unit 12 for display on the output device 28. A more condensed view in comparison to the view on the data processing unit 14 is contemplated, as shown in FIG. 8. There is a similar hole indicator 88 that shows the current hole being played along with its designated par number. A course distance indicator 90 shows the distance to various points of interest from the current location. Furthermore, there is a stroke display section 92 that shows the same information as the stroke display section 72 on the user interface 71 of the data processing unit 14. It is possible to increment and decrement the recorded number of strokes from the wearable sensor unit 12, and if there is a touch display screen, tapping or otherwise interacting with the increment icon 94 and the decrement icon 96 may be operative to adjust the score. Alternatively, the wearable sensor unit 12 may include buttons that are positioned along the same vicinity as the icons 94, 96, and activation of the buttons may be operative to adjust the score. The interface of the wearable sensor unit 12 has also been presented by way of example only and not of limitation.

Aside from the two kinds of outputs discussed above, it is also possible for the output module 70 to upload the score data to the aforementioned online services 42 for sharing with others. For example, one of the online services 42 could be a social networking site, and whenever certain achievement objectives are met, that could be announced thereon. Further competitive elements based on the recorded scores are also possible, such as challenges among players worldwide and so forth. Additionally, because each stroke is geocoded, different post-hoc visualizations of gameplay is possible.

The particulars shown herein are by way of example and for purposes of illustrative discussion of the embodiments of the disclosure only and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of automated golf scoring. In this regard, no attempt is made to show details with more particularity than is necessary for the fundamental understanding of the present disclosure, the description taken with the drawings making apparent to those skilled in the art how the several forms of the present disclosure may be embodied in practice. 

What is claimed is:
 1. A method for automated golf scoring with a data processing unit in communication with a sensor unit wearable by a player, the method comprising the steps of: receiving a measurement of a first swing motion by the player with an accelerometer of the sensor unit, the accelerometer generating first acceleration data corresponding to the first swing motion; detecting a resting state of the player with first speed data from a location positioner of the data processing unit, the first speed data being lower than a predetermined stationary speed threshold to detect the resting state of the player; storing the first acceleration data for the first swing motion into a swing queue retained on the data processing unit when the resting state is detected; detecting a movement of the player with second speed data from the location positioner of the data processing unit, the second speed data being greater than the predetermined stationary speed threshold to detect the movement of the player; and incrementing a shot counter retained on the data processing unit upon the detecting of the movement of the player and an evaluation of the first acceleration data in the swing queue having a higher magnitude than any existing acceleration data in the swing queue.
 2. The method of claim 1, wherein the first speed data and the second speed data is an instantaneous value generated by the location positioner of the data processing unit.
 3. The method of claim 1, wherein: the first speed data is derived from a first set of position data including geo-location coordinate values measured at predetermined time intervals; the second speed data is derived from a second set of position data including geo-location coordinate values measured at the predetermined time intervals; the predetermined stationary speed threshold corresponding to a distance between geo-location coordinate values at the predetermined time intervals.
 4. The method of claim 1, further comprising: removing the first acceleration data from the swing queue upon expiration of a timeout period.
 5. The method of claim 1, further comprising: receiving a measurement of a second swing motion by the player with the accelerometer, the accelerometer generating a second acceleration data corresponding to the second swing motion.
 6. The method of claim 5, further comprising: storing the second acceleration data for the second swing motion into the swing queue when the resting state is detected and the second acceleration data has a higher magnitude than the first acceleration data in the swing queue.
 7. The method of claim 6, wherein the first swing motion and the second swing motion are measured within a timeout period.
 8. The method of claim 6, further comprising: incrementing the shot counter upon detection of the movement of the player and an evaluation of the second acceleration data in the swing queue having a higher magnitude than the first acceleration data in the swing queue.
 9. The method of claim 1, wherein the first acceleration data is stored in the swing queue if the first acceleration data is evaluated as having a magnitude higher than a predetermined magnitude threshold.
 10. The method of claim 9, wherein the predetermined magnitude threshold is variable.
 11. The method of claim 10, wherein: the predetermined magnitude threshold is based upon a comparison of a player location from the position data to course data.
 12. The method of claim 11, wherein the course data includes a first set of location coordinates corresponding to a teeing ground of a course hole, second sets of location coordinates corresponding to a green of a course hole, and third sets of location coordinates corresponding to a fairway of a course hole.
 13. The method of claim 12, wherein the predetermined magnitude is reduced for the player location being within a set vicinity of the green of the course hole.
 14. The method of claim 12, wherein the predetermined magnitude is increased for the player location being within a set vicinity of the teeing ground of the course hole.
 15. The method of claim 10, wherein the predetermined magnitude threshold is based upon an evaluation of a player location from the position data along a sliding distance scale to a course hole.
 16. The method of claim 1, further comprising: storing in a stroke log the first acceleration data for the first swing motion; storing in the stroke log position data corresponding in time with the first acceleration data; and associating the position data to the first acceleration data.
 17. The method of claim 1, further comprising: generating a score output on a display device of the data processing unit, the score output corresponding to a value of the shot counter.
 18. The method of claim 1, further comprising: transmitting a score count to the sensor unit; and generating a score output on a display device of the sensor unit, the score output corresponding to the score count.
 19. The method of claim 1, wherein the accelerometer measures the movement in x, y, and z axes.
 20. The method of claim 19, wherein the first acceleration data is a summed magnitude of the accelerometer measurements in the x, y, and z axes.
 21. The method of claim 1, wherein the sensor unit and the data processing unit communicate wirelessly.
 22. An article of manufacture comprising a non-transitory program storage medium readable by a user computing device, the medium tangibly embodying one or more programs of instructions executable by the user computing device to perform an automated golf scoring method comprising: receiving on the user computing device a measurement of a first swing motion by the player with an accelerometer of a sensor unit wearable by the player and in communication with the user computing device, the accelerometer generating first acceleration data corresponding to the first swing motion; detecting a resting state of the player with first speed data from a location positioner of the user computing device, the first speed data being lower than a predetermined stationary speed threshold to detect the resting state of the player; storing the first acceleration data for the first swing motion into a swing queue retained on the user computing device when the resting state is detected; detecting a movement of the player with second speed data from the location positioner of the user computing device, the second speed data being greater than the predetermined stationary speed threshold to detect the movement of the player; and incrementing a shot counter retained on the user computing device upon the detecting of the movement of the player and an evaluation of the first acceleration data in the swing queue having a higher magnitude than any existing acceleration data in the swing queue.
 23. An automated golf scoring system, comprising: a sensor unit including an accelerometer measuring a swing motion by a player and generating acceleration data corresponding thereto; a data processing unit in communication with the sensor unit and receptive to the acceleration data, the data processing unit including: a geographic locator module outputting speed data corresponding to a current movement of the player; a swing detection module cooperating with the geographic locator module and the sensor unit to store acceleration data into a swing queue when a resting state of the player is detected based upon the speed data being less than a predetermined stationary speed threshold; a stroke counter module cooperating with the swing detection module and the geographic locator module, a shot counter retained on the data processing unit being incremented by the stroke counter module when a movement of the player is detected while a most recently recorded acceleration data has a highest magnitude among other acceleration data in the swing queue.
 24. The system of claim 23, wherein the sensor unit and the data processing unit each include respective transceiver modules, the acceleration data being transmitted by the transceiver module of the sensor unit and received by the transceiver module of the data processing unit.
 25. The system of claim 23, wherein: the sensor unit is wearable on a wrist of the player; and the data processing unit is a mobile communications device.
 26. The system of claim 23, wherein the geographic locator module includes a global positioning system (GPS) receiver.
 27. The system of claim 23, wherein: the geographic locator module outputs position data corresponding to a current geographic location; and the resting state of the player is detected based upon the position data inside a predetermined timeout period being within a predetermined distance threshold; 